/**
 * Simple template test cases for TIR
 */

#include <vector>
#include <map>
#include <string>
#include <memory>

int main() {
    // Basic template instantiation
    std::vector<int> int_vector;                    // Line 12
    
    // Nested template
    std::vector<std::vector<double>> matrix;        // Line 15
    
    // Map template
    std::map<std::string, int> string_to_int;       // Line 18
    
    // Complex nested template
    std::map<std::string, std::vector<int>> complex_map;  // Line 21
    
    // Auto variable with template
    auto auto_vector = std::vector<float>{1.0f, 2.0f};   // Line 24
    
    // Smart pointer
    std::shared_ptr<std::string> shared_string;     // Line 27
    
    // Template with non-type parameters  
    std::array<int, 5> int_array;                   // Line 30
    
    return 0;
}